#include <iostream>

/**
 * C++数据抽象
 *
 * 数据抽象的好处
 *
 * 1.类的内部受到保护，不会因无意的用户级错误导致对象状态受损。
 * 2.类实现可能随着时间的推移而发生变化，以便应对不断变化的需求，或者应对那些要求不改变用户级代码的错误报告。
 *
 */
class Adder{
private:
    //对外隐藏的数据
    int total;
public:
    //构造函数
    Adder(int i = 0){
        total = i;
    }
    //对外的接口
    void addNum(int number){
        total += number;
    }
    //对外的接口
    int getTotal(){
        return total;
    }
};

int main() {

    Adder adder;

    adder.addNum(10);
    adder.addNum(20);
    adder.addNum(30);

    std::cout << "Total : " << adder.getTotal() << std::endl;

    return 0;
}
